package Chapter14;

import java.util.HashSet;

/**
 * @author 杨森
 * @date 2022年10月27日 9:06
 */
public class HashSetIncrement {
    public static void main(String[] args) {
        //扩容机制 第一次添加时，table数组扩容到16
        // 临界值是16*加载因子的0.75=12
        //如果table数组使用到了临界值12，就会扩容到16*2=32
        //新的临界值就是32*0.75=24，依次类推
        HashSet hashset = new HashSet();
        for (int i = 1; i < 100; i++) {
            hashset.add(i);
        }

        //在java8中，如果一条链表的元素个数达到（默认是8）
        //并且table的大小>=（默认64），就会进行树化（红黑树）
        //否则仍然采用数组扩容机制

        hashset=new HashSet();
        for (int i = 1; i <=12 ; i++) {
            hashset.add(new A(i));
        }
        System.out.println("hashset="+hashset);
    }
}

class A{
    private int n;

    public A(int n) {
        this.n = n;
    }

    @Override
    public int hashCode() {
        return 100;
    }
}
